#include <stdio.h>
// static 说明符
void counter(void)
{
    // 默认情况下，每次调用函数时，函数的内部变量都会重新初始化，不会保留上一次运行的值。static说明符可以改变这种行为
    // 当static用于局部变量时，它将局部变量的存储期延长到整个程序的运行时间。这意味着局部变量在函数调用结束后不会被销毁，而是保留其值，直到下一次调用
    static int count = 1; // 只初始化一次
    printf("%d\n", count);
    count++;

    // static修饰的变量初始化时，只能赋值为常量，不能赋值为变量。
}
// 当static用于全局变量时，它将变量的作用域限制在定义它的源文件内。这意味着该变量只能在定义它的源文件中访问，其他源文件无法访问它。
static int fileScopeVar = 0; // 只能在当前文件中访问
// static可以用来修饰函数本身。
// static关键字表示该函数只能在当前文件里使用，如果没有这个关键字，其他文件也可以使用这个函数（通过声明函数原型）
static int Twice(int num)
{
    int result = num * 2;
    return (result);
}
void main()
{
    counter(); // 1
    counter(); // 2
    counter(); // 3
    counter(); // 4
}